The present invention relates to the field of software testing. More specifically, the present invention relates to a method and system for testing an order management system.
Software testing is a technique used to verify the accuracy, completeness and quality of computer software. In software testing, two broad approaches are used—white-box testing and black-box testing. In white-box testing, the test developer knows about the internal structure of the source code of the target software to be tested. In black-box testing, also referred to as specification-based testing or behavioral testing, the test developer does not have access to the source code of the target software to be tested.
Several methods are used for white-box and black-box testing approaches. One of these methods includes regression testing, which is used to identify and eliminate errors caused by regression. These errors due to regression occur when the software does not function as desired or when the software has been modified.
Regression testing is performed to identify errors caused by regression when the software is being developed. Regression testing is also performed as the software is updated. In addition, regression testing is performed using various test cases to identify errors in the software. These test cases include data for testing the software. Further, the developer uses the test cases by executing regression testing commands.
There exist methods that involve the use of regression testing. One of these methods employs regression testing to test an order management system. An order management system processes orders placed by users. Examples of an order management system include, but are not limited to, a payment management system, a courier management system, and the like. The processing of an order involves various stages such as creation of an order, validation of the order, payment for the order, and so forth. Further, the processing of the order needs to be performed in a sequence. At various stages, the order management system interacts with different external systems to process the order through that stage. Examples of such external systems include, but are not limited to, credit card systems, courier systems, and the like.
The order management system needs to be tested during its development phase and when the order management system is modified. Since an order is processed in a sequence, the testing also needs to be performed in a sequence to ensure accuracy, completeness and quality of the order management system. However, during the development phase of the order management system, its various sub-systems may not be available for testing. For example, during the development phase of a courier management system, sub-systems for processing the creation and delivery of an order may have been developed, but sub-systems for processing the payment of the order may not have been developed. In this case, testing of the order management system cannot be performed until the payment system has been developed. Typically, order management systems are frequently modified. The order management system needs to be tested after every modification.
The methods mentioned above have one or more of the following limitations. First, the sub-systems of the order management system need to be tested in a sequence. Therefore, a sub-system cannot be tested before the sub-systems that precede this sub-system in the order life cycle are developed. Second, data setup for testing the order management system is performed manually. Further, the data setup needs to be performed every time the order management system needs to be tested. Consequently, testing may produce erroneous results. In addition, data setup needs to be performed each time the order management system needs to be tested, which is time consuming.
In light of the discussion above, there is a need for a method, system and computer program product for testing an order management system during its development phase. The new method should enable testing of the sub-systems without depending on their availability. Further, the new method should eliminate the need for setting up data manually, each time the order management system needs to be tested. In addition, the new method should reduce the time taken in testing the order management system and the data setup.